#!/usr/bin/env python3
"""
过滤 query.txt，删除除第一列外其他列全为 0 的数据行
输出到 query_filter.txt
"""

def filter_query_result(input_file='query.txt', output_file='query_filter.txt'):
    """
    过滤查询结果，删除除第一列外其他列全为 0 的数据行

    Args:
        input_file: 输入文件
        output_file: 输出文件
    """
    with open(input_file, 'r', encoding='utf-8') as f_in:
        lines = f_in.readlines()

    filtered_lines = []

    for i, line in enumerate(lines):
        # 保留表头和分隔线（通常是前两行）
        if i < 2:
            filtered_lines.append(line)
            continue

        # 空行直接跳过
        if line.strip() == '':
            continue

        # 解析数据行
        if '|' in line:
            parts = [p.strip() for p in line.split('|')]

            # 检查从第二列开始是否全为 0
            if len(parts) >= 2:
                try:
                    # 跳过第一列（索引0），检查其他列
                    has_non_zero = False
                    for col in parts[1:]:
                        if col and col != '0':
                            has_non_zero = True
                            break

                    # 如果有任何非零值，保留这一行
                    if has_non_zero:
                        filtered_lines.append(line)
                except Exception:
                    # 解析失败，保留这一行
                    filtered_lines.append(line)

    # 写入输出文件
    with open(output_file, 'w', encoding='utf-8') as f_out:
        f_out.writelines(filtered_lines)

    print(f"过滤完成！")
    print(f"  输入: {input_file}")
    print(f"  输出: {output_file}")
    print(f"  保留行数: {len(filtered_lines)} (包含表头)")


if __name__ == '__main__':
    filter_query_result()
